package LinkedList集合的应用场景;

// 目标: 掌握LinkedList集合的使用

import java.util.LinkedList;

public class Test {
    public static void main(String[] args) {
        // 场景一: 可以用来设计队列(队列: 先进先出, 后进后出)

        // 1. 创建一个队列
        LinkedList<String> queue = new LinkedList<>();

        // 入队
        queue.addLast("第一号人");
        queue.addLast("第二号人");
        queue.addLast("第三号人");
        queue.addLast("第四号人");
        System.out.println(queue);

        // 出队
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue);

        System.out.println("------------------------");

        // 场景二: 可以用来设计栈(栈: 后进先出, 先进后出)
        // 1. 创建一个栈对象.
        LinkedList<String> stack = new LinkedList<>();

        // 压栈(push("")也可以,效果一样)
        stack.addFirst("第一颗子弹");
        stack.addFirst("第二颗子弹");
        stack.addFirst("第三颗子弹");
        stack.addFirst("第四颗子弹");
        System.out.println(stack);

        // 出栈(pop("")也可以)
        System.out.println(stack.removeFirst());
        System.out.println(stack.removeFirst());
        System.out.println(stack);
    }
}
